package com.example.demo.model.req;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Map;

/**
 * @author enlai.wang 16621134798
 * @date: 2022/5/26
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class NFTPublishReq {

    /**
     * NFT类别id
     * 必传
     */
    private String class_id;

    /**
     * NFT名称
     * 必传
     */
    private String name;

    /**
     * 链外数据链接
     */
    private String uri;

    /**
     * 链外数据hash
     */
    private String uri_hash;

    /**
     * 自定义链上元数据
     */
    private String data;

    /**
     * NFT 接收者地址，支持任一文昌链合法链账户地址，默认为 NFT 类别的权属者地址
     */
    private String recipient;

    /**
     * 交易标签, 自定义 key：支持大小写英文字母和汉字和数字，长度6-12位，自定义 value：长度限制在64位字符，支持大小写字母和数字
     */
    private Map<String, Object> tag;

    /**
     * 操作 ID，保证幂等性，避免重复请求，保证对于同一操作发起的一次请求或者多次请求的结果是一致的；由接入方生成的、针对每个 Project ID 唯一的、不超过 64 个大小写字母、数字、-、下划线的字符串
     */
    private String operation_id;
}
